
// <copyright file="IPoolItem.cs" company="Subhadra Software Solutions">
//   
// </copyright>
// <summary>
//   The PoolItem interface.
// </summary>

namespace SubhadraSolutions.Sharp.Utils.Pooling
{
    using System;

    /// <summary>
    /// The PoolItem interface.
    /// </summary>
    /// <typeparam name="T">
    /// </typeparam>
    public interface IPoolItem<T> : IDisposable
    {
        #region Public Methods and Operators

        /// <summary>
        /// The set adaptedObject and callback.
        /// </summary>
        /// <param name="adaptedObject">
        /// The adaptedObject.
        /// </param>
        /// <param name="callback">
        /// The callback.
        /// </param>
        void SetAdaptedObjectAndCallback(T adaptedObject, ReturnAdaptedObjectToPoolDelegate<T> callback);

        #endregion Public Methods and Operators
    }
}
